import pytest
from api.ihrmEmpApi import IhrmEmpApi
from common.assert_tools import assert_use
from common.db_tools import DBTools
from common.get_header_tools import get_header
from common.read_json_tools import read_json_file
from config import TEL, BASE_DIR


# 定义测试类
class TestAddEmpParams(object):

    def setup_class(self):
        self.header = get_header()

    def setup(self):
        # 调 数据库工具方法， 删除 指定手机号
        DBTools.uid_db(f"delete from bs_user where mobile = '{TEL}';")

    def teardown(self):
        # 调 数据库工具方法， 删除 指定手机号
        DBTools.uid_db(f"delete from bs_user where mobile = '{TEL}';")

    # 组织 添加员工 json 数据文件路径
    add_emp_file = BASE_DIR + "/data/add_emp_data.json"

    # 调用 读取 json 文件的 函数。提取 [(),(),()] 格式数据
    add_emp_data = read_json_file(add_emp_file)

    # 定义 通用 测试方法
    @pytest.mark.parametrize("desc, request_data, status_code, success, code, message", add_emp_data)
    def test_add_emp(self, desc, request_data, status_code, success, code, message):

        # 调用 自己封装的 添加员工接口
        resp = IhrmEmpApi.add_emp(self.header, request_data)
        print(desc, "：", resp.json())
        # 断言
        assert_use(resp, status_code, success, code, message)
